#ifndef InclusionGuard_SoundPotInstrumentDao_h
#define InclusionGuard_SoundPotInstrumentDao_h

#include <string>
#include <map>
#include "SoundPotInstrument.h"
#include "SoundPotSound.h"


namespace SoundPot
{
	class InstrumentDao
	{
	public:
		
		InstrumentDao();

		/// Destructs automatically all created instruments!
		~InstrumentDao();

		///	Registers a sound type like Vst or UniversalMidi.
		// void registerInstrumentType(Instrument::Type type, SoundTypeSpecificInstrumentFactory* specificFactory);

		/// Returns the instrument identified by the specified instrument id.
		virtual Instrument* findInstrument(const std::string& instrumentID) = 0;

	private:


		/// Contains all registered sound type specific factories.
		// std::map<Instrument::Type, SoundTypeSpecificInstrumentFactory*> specificFactories;

	};

}

#endif